/**
 * @author phi
 */


// enchant 初期化(global 領域に enchant を追加)
enchant();

/**
 * ロード
 */
window.onload = function()
{
    // ゲームクラスを生成
    var game = new Game(320, 320);
    
    game.onload = function(){
        // エネミーを生成
        for (var i=0; i<8; ++i) {
            var enemy = new EnemySprite();
            enemy.x = Math.random()*320;
            enemy.y = Math.random()*320;
            game.rootScene.addChild(enemy);
        }
    }
    
    // 背景表示
    game.rootScene.backgroundColor = 'rgb(240, 255, 255)';
    game.start();
}


/**
 * @scope   ArcSprite.prototype
 */
var ArcSprite = Class.create(Sprite, {
    /**
     * 円弧スプライトクラス
     * @memo    enchant の Sprite クラスを継承
     */
    initialize : function(radius){
        // 親のコンストラクタを呼び出す
        Sprite.call(this, radius*2, radius*2);
        
        // サーフィスを生成
        var surface = new Surface(radius*2, radius*2);
        var c = surface.context
        // サーフィスに円を描画
        c.fillStyle = "rgb(255, 0, 0)";
        c.beginPath();
        c.arc(radius, radius, radius, 0, Math.PI*2, true);
        c.fill();
        
        // スプライトにサーフィスをイメージとして登録
        this.image = surface;
    }
});

/**
 * @scope   EnemySprite.prototype
 */
var EnemySprite = Class.create(ArcSprite, {
    /**
     * エネミースプライトクラス
     */
    initialize : function(){
        // 親のコンストラクタを呼び出す
        ArcSprite.call(this, EnemySprite.RADIUS);
        
        // 移動する向きを設定(360度ランダムな方向に ENEMY_SPEED ずつ進む)
        var rad = Math.random()*360 * Math.PI/180;
        this.vx = Math.cos(rad) * EnemySprite.SPEED;
        this.vy =-Math.sin(rad) * EnemySprite.SPEED;
        
        // エフェクトと重複した際にタッチがきかなくなるので手前に表示するよう修正
        this._element.style.zIndex = 4;
    }
});
// static 
EnemySprite.RADIUS = 16;
EnemySprite.SPEED = 2;

